#ifndef CANNON_H
#define CANNON_H

class Projectile;

class Cannon : public Object
{
    public:
        Cannon();
        ~Cannon();
        void move_object();
        void show_object(Projectile* projectile);
        void clear_surface();
        void runAction(Projectile* projectile);
        void showInfo();
        void setRotation();
        void setPower();
        float getRotation()         {return rotation;}
        float getPower()            {return power;}
        float getHighScore()        {return highScore;}
        int getLaunchState()        {return launchState;}
        bool isMovingUp()           {return movingUp;}
        bool isRotating()           {return rotating;}
        bool isShot()               {return shot;}
        void resetGame();
    protected:
    private:
        float rotation;
        float power;
        bool movingUp;
        bool rotating;
        bool shot;
        int launchState;
        float highScore;

        SDL_Surface* firstCannon = NULL;
        SDL_Surface* rotatedCannon = NULL;
};

#endif // CANNON_H
